﻿using System;
using System.Web.Security;
using System.Windows.Forms;
using Autofac;
using ComputerVision.BaseForm;
using ComputerVision.Common;
using ComputerVision.Data;
using ComputerVision.Services;

namespace ComputerVision.Role
{
    public partial class frmRoleList : frmList
    {
        public frmRoleList()
        {
            InitializeComponent();
        }

        protected override void LoadData()
        {
            var role = Program.Container.Resolve<IService<aspnet_Roles>>();
            aspnetRolesBindingSource.DataSource = role.ToList();
        }

        protected override void Add()
        {
            var frm = new frmRoleDetail();
            frm.OnLoadData += LoadData;
            frm.ShowDialog();
        }

        protected override void Edit()
        {
            if (dgvRoles.SelectedRows.Count > 0)
            {
                DataGridViewRow selectedRow = dgvRoles.SelectedRows[0];
                Guid id = Guid.Parse(selectedRow.Cells[0].Value.ToString());
                using (var fEdit = new frmRoleDetail(id))
                {
                    fEdit.OnLoadData += LoadData;
                    fEdit.ShowDialog();
                }
            }
            else
            {
                AlertList.Error("Lỗi phát sinh khi cập nhật dữ liệu.");
            }
        }

        protected override void Delete()
        {
            try
            {
                if (dgvRoles.SelectedRows.Count > 0)
                {
                    DataGridViewRow selectedRow = dgvRoles.SelectedRows[0];
                    string name = selectedRow.Cells[1].Value.ToString();
                    Roles.DeleteRole(name, false);
                    LoadData();
                }
                else
                {
                    AlertList.Error("Lỗi phát sinh khi xóa dữ liệu dữ liệu.");
                }
            }
            catch (Exception ex)
            {
                AlertList.Error("Lỗi phát sinh khi xóa dữ liệu.");
            }
        }
    }
}